package com.jingdianjichi.subject.domain.service;


import com.jingdianjichi.subject.common.entity.PageResult;
import com.jingdianjichi.subject.domain.entity.SubjectLikedBO;

/**
 * 题目点赞表 领域service
 *
 * @author jingdianjichi
 * @since 2024-01-07 23:08:45
 */
public interface SubjectLikedDomainService {

    /**
     * 添加 题目点赞表 信息 使用redis+xxl实现
     */
    void add(SubjectLikedBO subjectLikedBO);


    /**
     * 添加 题目点赞表 信息,使用mq实现
     */
    void add_plus(SubjectLikedBO subjectLikedBO);


    /**
     * 获得当前题目是否被当前用户点赞
     */
    Boolean isLiked(String subjectId,String userId);

    /**
     * 获得当前题目点赞的数量
     */
    Integer getLikedCount(String subjectId);


    /**
     * 同步点赞数据到数据库
     */
    void syncLiked();

    /**
     * 获得我们点赞列表
     */
    PageResult<SubjectLikedBO> getSubjectLikePage(SubjectLikedBO subjectLikedBO);


    /**
     * 同步队列中的数据到数据库中
     * @param likedBO
     */
    void syncLikedByMessage(SubjectLikedBO likedBO);
}
